home *** CD-ROM | disk | FTP | other *** search
/ The X-Philes (2nd Revision) / The X-Philes Number 1 (1995).iso / xphiles / hp48hor1 / phone5.src < prev    next >
Text File  |  1991-10-19  |  4KB  |  228 lines

  1. %%HP: T(3)A(D)F(.);
  2. @ PHONE, by Robert K. Brunner
  3. DIR
  4.   FILES
  5.     DIR
  6.       CARDS
  7.         \<< RCWS 64
  8. STWS RCLF ROT
  9.           IF DUP
  10. VTYPE -1 ==
  11.           THEN DUP
  12. { } SWAP STO
  13.           END CVIEW
  14. STOF STWS
  15.         \>>
  16.     END
  17.   CVIEW
  18.     \<< DUP RCL DUP
  19. SIZE ROT 1 DUP DUP
  20. 0 DUP DUP DUP \->
  21. imax fnm i jmax j
  22. ti tx txi txl
  23.       \<< { "ADD"
  24. "EDIT" "DEL" "FIND"
  25. "SAVE" "QUIT" }
  26. TMENU 11 SF 10 CF
  27.         DO
  28.           IF imax
  29.           THEN
  30.             IF 11
  31. FS?C
  32.             THEN
  33. CLLCD DUP i cGET
  34. 'jmax' STO 'txl'
  35. STO 'txi' STO 'tx'
  36. STO DUP 1 DISP 'ti'
  37. STO
  38.             END tx
  39. txi j txl ROT ROT
  40. GET SWAP SUB 2 DISP
  41.           ELSE
  42. CLLCD "Empty file"
  43. 2 DISP 11 CF 0
  44. 'jmax' STO
  45.           END -1
  46. WAIT
  47.           CASE DUP
  48. 25.1 ==
  49.             THEN
  50.               IF j
  51. 1 >
  52.               THEN
  53. 'j' DECR DROP
  54.               ELSE
  55. eBEEP
  56.               END
  57.             END DUP
  58. 35.1 ==
  59.             THEN
  60.               IF j
  61. 5 + jmax <
  62.               THEN
  63. 'j' INCR DROP
  64.               ELSE
  65. eBEEP
  66.               END
  67.             END DUP
  68. 34.1 ==
  69.             THEN
  70.               IF i
  71. 1 >
  72.               THEN
  73. 1 'j' STO 'i' DECR
  74. DROP 11 SF
  75.               ELSE
  76. eBEEP
  77.               END
  78.             END DUP
  79. 36.1 ==
  80.             THEN
  81.               IF i
  82. imax <
  83.               THEN
  84. 1 'j' STO 'i' INCR
  85. DROP 11 SF
  86.               ELSE
  87. eBEEP
  88.               END
  89.             END DUP
  90. 11.1 ==
  91.             THEN
  92. DROP icADD 'i' STO
  93. 11 SF 'imax' INCR
  94.             END DUP
  95. 12.1 ==
  96.             THEN
  97.               IF
  98. imax
  99.               THEN
  100. DROP i icED 11 SF 0
  101.               ELSE
  102. eBEEP
  103.               END
  104.             END DUP
  105. 13.1 ==
  106.             THEN
  107.               IF
  108. imax
  109.               THEN
  110. DROP i cDEL 1 'j'
  111. STO 'imax' DECR
  112. IF i <
  113. THEN 'i' DECR
  114. ELSE 0
  115. END 11 SF
  116.               ELSE
  117. eBEEP
  118.               END
  119.             END DUP
  120. 14.1 ==
  121.             THEN
  122.               IF
  123. imax
  124.               THEN
  125. DROP DUP "Title:" {
  126. \Ga } INPUT cFIND
  127. IF DUP imax <
  128. THEN 1 +
  129. END 'i' STO 11 SF 0
  130.               ELSE
  131. eBEEP
  132.               END
  133.             END DUP
  134. 15.1 ==
  135.             THEN
  136. DROP DUP fnm STO 0
  137.             END DUP
  138. 16.1 ==
  139.             THEN 10
  140. SF
  141.             END
  142.           END DROP
  143.         UNTIL 10
  144. FS?
  145.         END DROP 0
  146. MENU
  147.       \>>
  148.     \>>
  149.   icADD
  150.     \<< DUP SIZE
  151. "Title:" { \Ga }
  152. INPUT DUP ":" + { \Ga
  153. } INPUT \-> tit tx
  154.       \<<
  155.         IF NOT
  156.         THEN 0
  157.         ELSE DUP
  158. tit cFIND
  159.         END SWAP
  160. OVER tit tx 2 \->LIST
  161. cADD SWAP 1 +
  162.       \>>
  163.     \>>
  164.   icED
  165.     \<< \-> i
  166.       \<< DUP i GET
  167. DUP OBJ\-> DROP SWAP
  168. ":" + SWAP { \Ga } +
  169. INPUT 2 SWAP PUT i
  170. SWAP PUT
  171.       \>>
  172.     \>>
  173.   eBEEP
  174.     \<< 440 .1 BEEP
  175.     \>>
  176.   cGET
  177.     \<< GET OBJ\-> DROP
  178. SWAP ":" + SWAP DUP
  179. DUP SIZE { 1 } \-> sz
  180. txi
  181.       \<<
  182.         WHILE DUP
  183. "
  184. " POS DUP
  185.         REPEAT SWAP
  186. OVER " " REPL SWAP
  187. 1 + 'txi' SWAP STO+
  188.         END DROP2
  189. txi sz OVER SIZE
  190.       \>>
  191.     \>>
  192.   cADD
  193.     \<< \-> i new
  194.       \<< OBJ\-> \-> n
  195.         \<< new 'n'
  196. INCR i - ROLLD n
  197. \->LIST
  198.         \>>
  199.       \>>
  200.     \>>
  201.   cFIND
  202.     \<< \-> str
  203.       \<< { "" } SWAP
  204. OBJ\-> DUP \-> n i
  205.         \<<
  206.           IF n
  207.           THEN
  208.             WHILE 1
  209. GET str \>= i AND
  210.             REPEAT
  211. 'i' DECR DROP
  212.             END
  213.           END i
  214. DROPN i
  215.         \>>
  216.       \>>
  217.     \>>
  218.   cDEL
  219.     \<< \-> i
  220.       \<< OBJ\-> \-> n
  221.         \<< n i - 1 +
  222. ROLL DROP n 1 -
  223. \->LIST
  224.         \>>
  225.       \>>
  226.     \>>
  227. END
  228.